<?php
	class AdminOptionsController extends Zone_Action{
		
		private function modules(){
			return array(
				projects_types				=> 	'Loại dự án',	
				tasks_types					=> 	'Loại công việc',	
				crm_customer_types			=> 	'Nhóm khách hàng',	
				crm_contract_types			=> 	'Loại hợp đồng',	
				crm_trade_types				=> 	'Loại ngành nghề',	
				crm_transaction_types		=> 	'Loại giao dịch',	
				crm_opportunity_types		=> 	'Giai đoạn bán hàng',	
				personnels_degrees			=> 	'Bậc đào tạo',	
				personnels_contract_types	=> 	'Hợp đồng nhân sự',
				assets_types					=> 	'Loại tài sản'					
			);	
		}
		
		private function fields(){
			$data = array(
				title => array(
					type 		=> 'CHAR',
					form_label 	=> 'Tiêu đề'
				)
			);
			return $data;	
		}				
		
		public function indexAction(){
			$modules = $this->modules();
			
			$options = array();
			
			foreach($modules as $k => $m){
				$options[] = array(
					module 	=> $k,
					title 	=> $m,
					posts 	=> $this->Model->fetchAll("SELECT * FROM `$k` ORDER BY `title`")
				);
			}
			
			$this->set('options',$options);
		}		
		
		public function addAction(){
			$this->removeLayout();
			$modules = $this->modules();
			$tb = get('m','');
						
			if( isset($modules[$tb]) ){			
				if( isPost() ){
					loadClass('ZData');
					$f = new ZData();
					$f->addFields( $this->fields() );
					
					$data = $f->getData();
					if(!is_array($data)){
						$this->setJSON(array(
							alert => $data
						));
					}else{
						$this->Model->insert($tb,$data);
						$this->Model->removeCache($tb);	
						
						$this->SetJSON(array(
							close		=> true,
							redirect	=> '#Admin/Options'	
						));						
					}	
				}				
			}else{
				$this->SetJSON(array(
					alert	=> 'Module không hợp lệ'	
				));			
			}			
		}		

		public function editAction(){
			$this->removeLayout();
			$modules = $this->modules();
			$tb = get('m','');
			$id = get('ID',0);						
			
			if( isset($modules[$tb]) && $id != 0 ){
				$post = $this->Model->fetchRow("SELECT * FROM `$tb` WHERE `ID`='$id'");	
				if( !$post ){
					return $this->SetJSON(array(
						alert	=> 'Bản ghi không tồn tại hoặc đã bị xóa'	
					));				
				}
				
				$this->set('post',$post);
				
				if( isPost() ){
					loadClass('ZData');
					$f = new ZData();
					$f->addFields( $this->fields() );
					
					$data = $f->getData();
					if(!is_array($data)){
						$this->setJSON(array(
							alert => $data
						));
					}else{
						$this->Model->update($tb,$data,"`ID`='$id'");
						$this->Model->removeCache($tb);						
						
						$this->SetJSON(array(
							close		=> true,
							redirect	=> '#Admin/Options'	
						));						
					}	
				}				
			}else{
				$this->SetJSON(array(
					alert	=> 'Module không hợp lệ'	
				));			
			}
		}		
		
		
		public function deleteAction(){
			$modules = $this->modules();
			
			$tb = get('m','');
			$id = get('ID',0);
			
			if( isset($modules[$tb]) && $id != 0 ){
				$this->Model->delete($tb,"`ID`='$id'");				
				$this->Model->removeCache($tb);
			}			
			
			$this->SetJSON(array(
				redirect	=> '#Admin/Options'	
			));
		}
		
	
	}
 ?>